# 数据分析理解：我是觉得2个公司竞争某一市场的话，甲方获得的数据更完整更合理更具可靠性的话那么他在这一场战争中就已经赢了百分之80
# 所以我才觉得数据会很重要，以后可能是哪一方掌握了数据那么，那一方的胜率就更大


import org.apache.spark.sql.

{Dataset, SparkSession}

object
TestLoadDbData
{
def main(args: Array[String]): Unit = {
if (args.size != 1)


{
    println("程序参数不正确！！要求一个参数")
System.exit(1);
}
val
strOutUrl = args(0)
println("------------ strOutUrl: " + strOutUrl)

val sparkSession = SparkSession.builder
sparkSession = SparkSession.builder
                   .master("yarn-client")
               //.master("local")
    .appName("GetMmsi")
    .config("yarn.resourcemanager.hostname", "ip")
    .config("spark.yarn.queue", "spark")
    .getOrCreate()

val hdfsUrl: String = "hdfs://ip:port/aa/bb/part-00000" #也是可以配置在启动命令的参数中的；hdfs输入
val
rdd: Dataset[String] = sparkSession.read.textFile(hdfsUrl)
val
countLines = rdd.count()
println("统计的总行数为：" + countLines)
rdd.write.csv(strOutUrl)

sparkSession.close()
}

}

zip -d <你的jar包名称.jar> META-INF/*.RSA META-INF/*.DSA META-INF/*.SF  这个是对压缩包里的文件进行删除的命令

./spark-submit
--master yarn --deploy-mode client
--class cetcocean.chenyekun.TestLoadDbData
/root/testSpark/SparkScalaTest.jar
hdfs://ip:port/aa/bb/csdn4

bin/spark-submit \
--master yarn \        #你的master平台:采用yarn模式时候：是yarn
--name wordcount \       #你的任务名称:作业命令：appName
--deploy-mode client \    #deploy-mode模式设置，可以使用client 或者cluster模式；(注意保持与应用程序保持一致，否则出现任务失败的情况)
--class spark.WordCount \  #你编写的主类全路径名称
--driver-memory   1G  \     #driver的内存分配
--driver-cores 1 \          #driver的核心数
--executor-memory 1G \      # 每个executor的内存
--executor-cores 1 \         #executor的核心数
--num-executors 1  \        # executor个数
--conf spark.app.coalesce=2 \   #分区数
